#include <time.h>
#include "ens.h"

bool MemeCouple(couple c1,couple c2){
    return (c1.x==c2.x && c1.y==c2.y);
}

Ens EnsAlloc(){
    Ens e = malloc(sizeof(ens));
    e->max = INIT_MAX;
    e->taille=0;
    e->v = malloc(sizeof(couple)*e->max);
    return e;
}

void EnsFree(Ens e){
    free(e->v);
}

bool EnsEstVide(Ens e){
    return (e->taille==0);
}

void EnsAjoute(Ens e, couple c){
    if(e->taille==e->max){
        e->max*=2;
        e->v = realloc(e->v,e->max*sizeof(couple));
    }
    e->v[e->taille]=c;
    e->taille++;
}

void EnsSuppr(Ens e, couple c){
    int i,t=e->taille;
    for(i=0 ; i<e->taille ; i++){
        if (MemeCouple(e->v[i],c)){
            if(i!=e->taille-1) e->v[i]=e->v[e->taille-1];
            e->taille--;
        }
    }
}

bool EnsEstDans(Ens e, couple c){
    int i;
    for(i=0 ; i<e->taille ; i++){
        if (MemeCouple(e->v[i],c)) return 1;
    }
    return 0;
}

// pre : e non vide
couple EnsTirage(Ens e){
    int i;
    couple winner;
    i = rand()%(e->taille);
	winner = e->v[i];
    EnsSuppr(e,e->v[i]);
    return winner;
}
